This invention relates to an image output apparatus such as a printer which, e.g., generates an image from image data and outputs the image, and a control method for the image output apparatus.
Conventionally, image output apparatuses which generates images from object data are known. The object data includes information on the position, the size, the color and the like of a character, a figure, a natural image or the like. The apparatuses combine the images corresponding to the objects, and output the obtained image. In these image output apparatuses, there is a limitation upon time for generating the image to be outputted. For example, a page printer, having a printer engine based on a laser-beam printing method, divides one-page image data into a plurality of band data, then generates and outputs images for respective bands. Accordingly, in a case where printing of one band image has been completed and printing for the next band is performed, if the next band image has not been formed at a point where the previous band image has been print-outputted, the printer becomes in "over-run" condition, i.e., a status indicating that the printer engine continues printing while there is no print data. When this over-run occurs, a desired image cannot be appropriately printed. Further, since there is limitation upon time for image generation, conventionally, time necessary for generating images from all the objects included in an image to be outputted is predicted, and it is determined whether or not image data can be generated within the limited time.
Next, a printer as an example of the conventional image output apparatus will be described with reference to FIGS. 12 and 13.
In FIG. 12, a processing program list 201 is formed in a memory. The respective entries of the processing program list 201 are object data including information on the type of image to be generated, the position of the image on an image memory 205, the position of a target image on a font memory, and expansion and/or rotation instruction. Note that the image memory 205 has addresses corresponding to a print sheet 204 on which the generated image will be printed. Note that in FIG. 12, the image memory 205 has a size corresponding to one of multiple bands for one page. This type of image memory will be specifically referred to as "band memory".
An image generator 202 reads object data from the processing program list 201, and in accordance with the content of the data, generates an image. For example, if the read object data indicates a character, the image generator 202 reads a corresponding character pattern from a pre-registered character font 203, and generates the character image, then provides the character image in the image memory 205 at a position corresponding to a printing position.
FIG. 13 shows the image memory 205. Since the image memory 205 is a band memory, it is required to provide at least two image memories 205 to avoid over-run. In use of two band memories, image generation and image output are alternately performed by using the two band memories. Thus, to realize one-page print output with two image memories, time for mapping an image on one image memory must be shorter than time for print-outputting the image. In a printer using the band memories, the processing-time limitation corresponds to this relation between image generation time and image output time.
In this manner, as time-limitation is imposed on image generation, the time for image generation is predicted, and the occurrence of over-run is predicted. That is, time for generating an image is predicted for an object included in the image generated in a band memory, then it is determined whether or not over-run occurs. When the occurrence of over-run is predicted, it is necessary to generate the band image and store the image prior to printing, accordingly, a large-capacity image memory is required. If the image memory is lacking, printing might be impossible without additional memory, otherwise, printing might be performed with poor image quality due to degradation of printing quality such as resolution or tonality of image.
However, as images corresponding to objects cannot be generated in the same time because of types and sizes of the object, it is impossible to exactly predict the image generation time. Further, in the image output apparatus, a controller that performs image generation occasionally performs processing operation of other elements, which often disturbs smooth processing and disables optimal performance of the image output apparatus. Accordingly, predictable time should be a value having sufficient margin with respect to time used for image generation with the optimal performance of the image output apparatus, in consideration of various tolerances. However, this margin causes prediction of over-run even with respect to an image which can be outputted without over-run. This increases storing an image for avoiding over-run, thus causes image memory shortage or degradation of printing quality.